<?php
class PessoasController extends AppController {

	var $name = 'Pessoas';

	function cadastrarCliente($id = null, $msg = null) {
		if ( !empty($this->data) ) {
			if ($this->Pessoa->save($this->data)) {
				//$this->Session->setFlash('O cliente foi salvo.');
				$msg = 'O cliente foi salvo.';
				$this->redirect(array('action' => 'cadastrarCliente', $this->Pessoa->id, $msg));
			} else 
				$msg = 'O cliente não foi salvo.';
				//$this->Session->setFlash('O cliente não foi salvo.');
		}
		
		if ($id && empty($this->data))
			$this->data = $this->Pessoa->read(null, $id);
		
		$municipios = $this->Pessoa->Municipio->find('list');
		$this->set(compact('municipios', 'id', 'msg'));
	}

	function consultarCliente($msg = null) {
		
		if ( !empty($this->data) ) {
			
			$pessoa_id = ''; 
			if ( !empty($this->data['Pessoa']['cpfcnpj']) )
				$pessoa_id = $this->Pessoa->field('id', array('Pessoa.cpfcnpj ilike \'%'.$this->data['Pessoa']['cpfcnpj'].'%\'')); 
			if ( !empty($this->data['Pessoa']['nome']) )
				$pessoa_id = $this->Pessoa->field('id', array('Pessoa.nome ilike \'%'.$this->data['Pessoa']['nome'].'%\''));
			
			if ( $pessoa_id != '' )	 
				$this->redirect(array('action' => 'cadastrarCliente', $pessoa_id));
			else 
				$msg = 'Cliente não cadastrado.';//$this->Session->setFlash('Cliente não cadastrado.');
			
		}
		$this->set(compact('msg'));
	}

	function delete($id = null, $tipopessoa = null, $msg = null) {
		if ($id) {
			if ( $this->Session->read('Auth.Usuario.perfilacesso') == 'Administrador' ) {
				if ($this->Pessoa->delete($id)) {
					//$this->Session->setFlash($tipopessoa.' excluído.');
					$msg = $tipopessoa.' excluído.';
					$this->redirect(array('action'=>'consultarCliente', $msg));
				} else
					$msg = 'O '.$tipopessoa.' não pôde ser excluído.';//$this->Session->setFlash('O '.$tipopessoa.' não pôde ser excluído.');
			} else
				$msg = 'Somente o Administrador pode excluir um cliente.';//$this->Session->setFlash('Somente o Administrador pode excluir um cliente.');
		}
		$this->redirect(array('action' => 'cadastrarCliente', $id, $msg));
	}
	
	//aqui será preciso salvar um novo usuario com a senha inserida, o id do funcionário, e o cpf como username 
	function cadastrarFuncionario($id = null, $msg = null) {
		
		if ( !empty($this->data) ) {
			
			if ( $this->data['Usuario']['senha'] == $this->data['Usuario']['senha_conf'] ) {
				if ($this->Pessoa->save($this->data)) {
					
					$id = $this->Pessoa->id;
					//salvando o login do funcionário
					if ( $this->data['Usuario']['id'] )
						$this->Pessoa->Usuario->create();
					$this->data['Usuario']['pessoa_id'] = $id; 
					$this->data['Usuario']['usuario'] = $this->data['Pessoa']['cpfcnpj'];
					$this->data['Usuario']['senha'] = $this->Auth->password($this->data['Usuario']['senha']);
					$this->Pessoa->Usuario->save($this->data['Usuario']);
					
					$msg = 'O funcionário foi salvo.';
					$this->redirect(array('action' => 'cadastrarFuncionario', $id, $msg));
				} else 
					$msg = 'O funcionário não foi salvo.';
				
			} else 
				$msg = 'As senhas não conferem.';
		}
		
		$usuario_id = '';
		if ($id && empty($this->data)) {
			$this->data = $this->Pessoa->read(null, $id);
			$this->data['Usuario'] = $this->data['Usuario'][0];
			$this->data['Usuario']['senha_conf'] = $this->data['Usuario']['senha'];
			$usuario_id = $this->data['Usuario']['id'];
		}
		
		$municipios = $this->Pessoa->Municipio->find('list');
		$this->set(compact('municipios', 'id', 'usuario_id', 'msg'));
	}
	/*
	function consultarCliente() {
		
		if ( !empty($this->data) ) {
			$pessoa_id = null; //verificar RN caso não ache um cliente 
			if ( $this->data['Pessoa']['cpfcnpj'] )
				$pessoa_id = $this->Pessoa->field('id', array('Pessoa.cpfcnpj ilike \'%'.$this->data['Pessoa']['cpfcnpj'].'%\'', 
															  'Pessoa.pessoatipo' => 'Cliente')); 
			if ( $this->data['Pessoa']['nome'] )
				$pessoa_id = $this->Pessoa->field('id', array('Pessoa.nome ilike \'%'.$this->data['Pessoa']['nome'].'%\'', 
															  'Pessoa.pessoatipo' => 'Cliente')); 
				 
			$this->redirect(array('action' => 'cadastrarCliente', $pessoa_id));
		}
		
	}
	*/
	function consultarFuncionario($msg = null) {
		
		if ( !empty($this->data) ) {
			$pessoa_id = null;  
			if ( $this->data['Pessoa']['cpfcnpj'] )
				$pessoa_id = $this->Pessoa->field('id', array('Pessoa.cpfcnpj ilike \'%'.$this->data['Pessoa']['cpfcnpj'].'%\'', 
															  'Pessoa.pessoatipo' => 'Funcionario')); 
			if ( $this->data['Pessoa']['nome'] )
				$pessoa_id = $this->Pessoa->field('id', array('Pessoa.nome ilike \'%'.$this->data['Pessoa']['nome'].'%\'', 
															  'Pessoa.pessoatipo' => 'Funcionario')); 

			if ( !empty($pessoa_id) )
				$this->redirect(array('action' => 'cadastrarFuncionario', $pessoa_id));
			else $msg = 'Nenhum funcionário foi encontrado.';
		}
		$this->set(compact('pessoa_id', 'msg'));
	}
	
	function buscarClientePeloCPF($cpf = null) {
		$this->layout = 'ajax';
		
		$id = $this->Pessoa->field('id', array('Pessoa.cpfcnpj ilike \'%'.$cpf.'%\''));
		if ( !empty($id) ) 
			$this->data = $this->Pessoa->read(null, $id);
		else 
			$this->data = array();
			
		echo json_encode($this->data);
		$this->render(false);
	}

}
?>